//
// Created by YueChuan on 2023/5/5.
//

#ifndef YUECHUAN_MODULE_H
#define YUECHUAN_MODULE_H

#include "stream.h"
#include "singleton.h"
#include "mutex.h"
#include <map>
#include <unorederr_map>


namespace yuechuan {
    class Module {
    public:
        enum Type {
            MODULE = 0,
            ROCK = 1
        };
        typedef std::shared_ptr<Module> ptr;

        Module(const std::string &name, const std::string &version, const std::string &fileName,
               uint32_t type = MODULE);
        virtual ~Module();

        virtual void onBeforeArgsParse(int argc, char** argv);
    };
}


#endif //YUECHUAN_MODULE_H
